export default {
	// 开启命名空间
	namespaced: true,
	state: {
		cart1: {
			cart_items: []
		},
		pickGoods: JSON.parse(uni.getStorageSync("pickGoods") || '[]'),
		flowerSortId: 1
		// cart: JSON.parse(uni.getStorageSync("cart") || '[]'),
	},
	mutations: {
		updataflowerSortId(state,payload){
			state.flowerSortId=payload
		},
		updataPickGoods(state) {
			state.pickGoods.length = 0;
			state.pickGoods = state.cart1.cart_items.filter(item => {
				return item.isChecked
			})
			this.commit("m_cart/savePickGoodsToStorage");
		},
		updataPickGoods1(state, payload) {
			state.pickGoods.length = 0;
			state.pickGoods.push(payload)
			this.commit("m_cart/savePickGoodsToStorage");
		},
		// 持久化存储下单的商品
		savePickGoodsToStorage(state) {
			uni.setStorageSync("pickGoods", JSON.stringify(state.pickGoods));
		},
		add(state, payload) {
			state.cart1 = payload
		},
		// m1. 添加购物车数据方法
		addToCart(state, payload) {
			// m1.1 查找是否已有对应商品
			// const findResult = state.cart.find((x) => x.goods_id === payload.goods_id);
			// 判断有无 选择操作
			// if (!findResult) {
			// 	state.cart.unshift(payload); //添加新商品

			// 	uni.$showMsg('添加新商品')
			// } else {
			// 	findResult.goods_count++; //购物车数量+1
			// 	uni.$showMsg('+1')

			// }
			// console.log(findResult); //@log

			// 通过commit方法，调用 m_cart 命名空间下的 saveCartToStorage 方法
			this.commit("m_cart/saveCartToStorage");
		},

		// 持久化存储购物车的商品
		saveCartToStorage(state) {
			uni.setStorageSync("cart", JSON.stringify(state.cart));
		},

		// 更新商品的勾选状态
		updateGoodsState(state, payload) {
			// 利用some遍历，满足后 后面无需遍历
			state.cart1.cart_items.some(item => {
				if (item.product_id === payload.product_id) {
					// 更新商品的勾选状态
					item.isChecked = !item.isChecked;
					// 持久化存储到本地
					// this.commit("m_cart/saveCartToStorage");
					return true;
				}
			})
		},

		// 更新商品的数量
		updateGoodsCount(state, payload) {
			// 利用some遍历，满足后 后面无需遍历
			state.cart.some(item => {
				if (item.goods_id === payload.goods_id) {
					// 更新商品的数量
					// item.goods_count = +payload.goods_count;
					// 持久化存储到本地
					this.commit("m_cart/saveCartToStorage");
					return true;
				}
			})
		},

		// 删除购物车商品
		deleteGoods(state, payload) {
			// console.log(state); //@log

			// console.log(payload);
			// filter 方法过滤
			state.cart = state.cart.filter(x => x.goods_id !== payload.goods_id);
			// 持久化存储到本地
			this.commit("m_cart/saveCartToStorage");
		},

		// 更新所有商品的勾选状态（newState）
		updateAllGoodsState(state, newState) {
			state.cart1.cart_items.forEach(x => x.isChecked = newState);

			// 持久化存储到本地
			// this.commit("m_cart/saveCartToStorage");
		}



	},
	getters: {
		// 统计购物车中商品的总数量
		total(state) {

			// 利用 reduce 累加器求和
			return state.cart1.cart_items.length;
		},
		pickTotal(state) {
			return state.pickGoods.reduce((total, item) => {
				return total += item.total_amount || item.amount
			}, 0)
		},
		getProductId(state) {
			let arr = []
			state.pickGoods.forEach(item => {
				arr.push(item.product_id)
			})
			return arr
		},
		AllGoodsState(state) {
			return state.cart1.cart_items.every(item => {
				return item.isChecked
			})
		},
		AllTotalPrice(state) {
			return state.cart1.cart_items.filter(x => x.isChecked)
				.reduce((total, item) => total += item.total_amount, 0)

		}
	}

}
